Communication interface for front panel and power module

ABSTRACT

This disclosure describes, in part, voice-controlled light dimmers that act as voice-controlled endpoints at which users may provide voice commands. These light dimmers include a front panel module coupled to a power module using a hardware interface. The front panel module may receive input from a user indicating commands for controlling appliances, and send communications to the power module using the hardware interface to control the appliances. In some examples, the communications involve encrypted data sent using an inter-integrated circuit (I2C) protocol using the hardware interface to an electrically isolated power module. The power provided to the appliances may be controlled by the power module of the voice-controlled light dimmer.

RELATED APPLICATIONS

This application claims priority to and is a continuation of U.S. patentapplication Ser. No. 15/633,693, filed on Jun. 26, 2017, the entirecontents of which are incorporated herein by reference.

BACKGROUND

Homes are becoming more wired and connected with the proliferation ofcomputing devices such as desktops, tablets, entertainment systems, andportable communication devices. As computing devices evolve, manydifferent ways have been introduced to allow users to interact withthese devices, such as through mechanical means (e.g., keyboards, mice,etc.), touch screens, motion, and gesture. Another way to interact withcomputing devices is through speech.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical components or features.

FIG. 1 shows an illustrative voice interaction computing architectureset in a home environment. The architecture includes at least onevoice-controlled light dimmer and a voice-controlled device physicallysituated in the home, along with a user. In this example, the lightdimmer includes one or more microphones for generating an audio signalthat may include a command of the user, such as a command to dim thelights in the illustrated room.

FIG. 2 illustrates an example voice-controlled light dimmer thatincludes a front panel module and a power module connected by a hardwareinterface. The front panel module may further include microphones, aswitch, a speaker, and light emitting diodes. The front panel module maycommunicate with the power module using the hardware interface, andreceive power from the power module using the hardware interface.

FIG. 3 illustrates an example configuration of a voice-controlled lightdimmer. Here, the light dimmer includes a front panel module connectedto a power module by a hardware interface.

FIG. 4 illustrates a flow diagram of an example process for receivinginput at a front panel module indicating an instruction to dim a light,generating a command to dim the light, encrypting the command to dim thelight, and sending the encrypted command to a power module to dim thelight. In some examples, receiving the input may comprise sending anaudio signal to a remote service for natural language processing, andreceiving, from the remote service, data indicating that the audiosignal represented a request to dim the light. In other examples,receiving the input may comprise receiving an activation of a dimmerswitch.

FIG. 5 illustrates a flow diagram of an example process for receivinginput at an apparatus indicating an instruction to change an amount ofpower supplied to a power load, determining a command to cause a powermodule to change the amount of power, and sending the command to thepower module.

FIG. 6 illustrates a flow diagram of an example process for receiving acommand to change an amount of power provided to a power load, andcausing a power control component to change the amount of power providedto the power load.

DETAILED DESCRIPTION

This disclosure describes, in part, voice-controlled home automationlight dimmers that act as voice-controlled endpoints at which users mayprovide voice commands. These light dimmers may comprise a power module,which may be installed into a wall permanently to serve as a powersource, and a front panel which couples to the power module via ahardware interface. The hardware interface may allow the front panel andpower module to communicate, and may further allow the power module toprovide power to the front panel. These light dimmers may additionallycouple to one or more power loads, such as appliances (e.g., lights,outlets, home appliances, etc.). In some examples, the front panel mayinclude various components (e.g., rotatable knob, paddle switch, slidingknob, capacitive touch sensor, etc.) to receive input regarding how auser would like to control a power load (e.g., turn on or off a light,dim or brighten a light, etc.). While the light dimmers described hereinare described primarily as selectively providing power to the powerloads along a spectrum of positions and power supplies, the lightdimmers may also include physical components to provide power in abinary fashion (on or off). In either instance, the power loads coupledto the power modules of the light dimmers may include lights, electricaloutlets, home appliances (e.g., dishwashers, washing machines, smokedetectors, security alarms, automated door locks, automated windowshades, thermostats, etc.), factory machinery, healthcare devices (e.g.,insulin pumps, CPAP machines, etc.), cleaning devices (e.g., autonomousrobotic vacuum cleaners, etc.), or any other device that receiveselectrical power.

In addition to traditional light-dimmer components, the voice-controlledlight dimmers described herein include one or more microphones forgenerating audio signals, from which one or more voice commands may beidentified. For instance, a front panel of a light dimmer may include amicrophone on the physical dimmer switch, on a faceplate of the frontpanel, and/or the like, with this microphone generating audio signalsbased on sound detected within the environment of the light dimmer. Thefront panel may perform speech recognition on the generated audio signalto identify a voice command, or the front panel may include a networkinterface for sending the audio signal to another device or to a remoteservice, which may perform the speech processing. The front panel maysend instructions or commands to the power module to turn “on” or “off”power to the power loads, or increase or decrease the amount of powerprovided to the power loads. For example, the front panel may eitherdetermine that the voice command includes a request from a user to dimlights, or receive activation of the dimmer switch to dim the lights,and send an instruction or command to the power module to change theamount of power supplied to one or more lights based on the input thefront panel received.

In some examples, the power module of the light dimmer may bepermanently installed at a location, such as a wall of a home or otherbuilding. The power module of the light dimmer may receive power from apersistent power source, such as the primary alternating current (AC)power supply connected to the home or other building. The power modulemay convert the AC power received to direct current (DC) power, and stepdown the voltage to provide power to the front panel. As such, thispower module may be used to power the microphones and other componentsof the front panel. Further, while the power module may couple to the ACpower supply, in other instances the power module may couple to anyother type of power source, such as batteries, capacitors, solar panels,or the like.

In some examples, the front panel and the power module may communicateusing a hardware interface. The hardware interface may comprise one ormore wires or pins (e.g., connections) by which the front panel andpower module communicate. For example, one of the front panel or powermodule may have multiple female hardware connections, and the other ofthe front panel or power module may have multiple male hardwareconnections (e.g., pins, wires, etc.). In some examples, the front paneland power module communicate using various hardware interfaces havingvarious numbers of connections, such as serial interfaces and/orparallel interfaces. The hardware interfaces may be used to communicateusing various protocols, such as a Universal asynchronousreceiver/transmitter (UART) protocol, a Serial Peripheral Interface(SPI) protocol, a Universal Serial Bus (USB) protocol, aninter-integrated circuit (I2C) protocol, etc. In some examples, the I2Cprotocol may be used to communicate using at least two connections ofthe hardware interface. Further, the hardware interface may furtherinclude one connection by which the power module provides power to thefront panel. In some examples, the hardware interface may include otherconnections for performing other functions. For instance, the hardwareinterface may include a detect connection that the power module uses todetermine if a front panel is connected to the power module. Responsiveto detecting connection of a front panel using the detect connection,the power module may supply power to the front panel, or responsive todetecting disconnection of a front panel using the detect connection,the power module may stop providing power via the hardware interface. Inthis way, the power module may avoid having “hot” connections exposedwhen a front panel is not connected.

In some examples, the front panel may further be electrically isolatedusing one or more isolation devices. For instance, various components ofthe power module exposed by the hardware interface may be electricallyisolated using at least one of magnetic isolation or optical isolation.This may further provide a “safe” power module to prevent potentialharmful shock when a front panel is not connected to the power module.

In various examples, the power module and front panel may include one ormore encryption keys and modules configured to encrypt data using theone or more encryption keys. The modules may encrypt data sent betweenthe power module and the front panel using the hardware interface toprotect the data. For example, the front panel may encrypt a command todim a light source using the one or more encryption keys, and send theencrypted command to the power module using the hardware interface. Thepower module may receive the encrypted command, decrypt it using the oneor more encryption keys it has stored locally, and cause the lightsource to dim per the command. In various instances, this may provide amanufacturer of the power module to prevent unauthorized manufacturersof front panels from using the power module. If an unauthorized frontpanel manufacturer does not have the one or more encryption keys, thenan unauthorized front panel will be unable to communicate with the powermodule. In this way the power module manufacturers may preventharmful/dangerous front panels from being installed on a power module,or unlicensed front panel manufacturers, from using the power modules.

While the techniques described above and below are primarily withrespect to a light dimmer which receives input and controls an applianceusing a separate power module, the techniques described herein may beutilized for any type of input device other than a light dimmer that canbe coupled to a power module, and instruct the power module to performvarious operations for controlling a power load. Additionally, while thetechniques are described as using an I2C interface, any other type ofinterface (e.g., Serial Peripheral Interface (SPI) Bus Protocol,Universal Asynchronous Receiver/Transmitter (UART), etc.) may be used toperform equivalent techniques.

In some examples, the techniques described above may be utilized forother purposes other than controlling power to a load. For example,various commands may be communicated between the front panel module andthe power supply, such as a command to add an item to a shopping list ofa user, add a calendar appointment to a calendar of a user, record atelevision show for a user, etc. In such examples, the front panelmodule may receive the commands, such as by capturing a voice commandusing a microphone, and communicate the commands to the power moduleusing the techniques described herein. The power module may then sendsignal to various devices to perform the commands issued by the user.

While the examples that follow describe several example configurationsof microphones on a voice-controlled light dimmer, other implementationsmay utilize any other number of microphones located at an array ofpositions. In addition, these voice-controlled light dimmers may includean array of other components, such as output devices (e.g., LEDs,speakers, displays, etc.), different types of network interfaces (e.g.,wired network interfaces, BLE interfaces, Zigbee interfaces, WiFiinterfaces, etc.), and the like.

FIG. 1 shows an illustrative voice interaction computing architecture100 set in a home environment 102 that includes a user 104, avoice-controlled light dimmer 108, and a user device 110. Asillustrated, the user issues a voice command 106 (“Wake up . . . pleasedim the lights.”) In some instances, the voice-controlled light dimmer108 may include a front panel module 112 that includes one or moremicrophones 114 that may generate one or more audio signals foridentifying the voice command and performing a corresponding action,such changing the brightness of a light 116 within the environment 102.

In some instances, the voice-controlled light dimmer 108 may identifythe predefined word or phrase (“wake up”) and may thereafter beginstreaming one or more audio signals to another device for processing,such as to a remote service 118 comprising one or more remote devices(or “computing resources”). These remote computing resources may form aportion of a network-accessible computing platform implemented as acomputing infrastructure of processors, storage, software, data access,and so forth that is maintained and accessible via a network such as theInternet. The remote computing resources do not require end-userknowledge of the physical location and configuration of the system thatdelivers the services. Common expressions associated for these remotecomputing devices include “on-demand computing”, “software as a service(SaaS)”, “platform computing”, “network-accessible platform”, “cloudservices”, “data centers”, and so forth. Further, while FIG. 1illustrates the remote service as being accessible over a network, inother instances the remote service/device may comprise a local hubwithin an environment of the voice-controlled light dimmer 108.

The remote service 118 may perform processing on these audio signals(e.g., beamforming, acoustic echo cancellation, etc.) as well as speechrecognition to identify one or more voice commands, such as the voicecommand 106 to dim the lights 116. After identifying the voice command,the remote service 118 may send an instruction to the voice-controlledlight dimmer 108 or to another device (in the environment 102 orotherwise) to perform a corresponding action. In this example, theremote service 118 may send an instruction to the light dimmer 108 todim the light 116. In response to receiving this instruction, thevoice-controlled light dimmer 108 may execute the instruction and dimthe light 116. That is, the voice-controlled light dimmer 108 may causecircuitry and/or software modules of the light dimmer 108 to provideless power to the lights connected to the switch than previously beingprovided, without the dimmer switch moving positions (as in the case ofa user manually adjusting the dimmer switch). Instead, the internalcircuitry and/or software modules may change a duty cycle of a powersignal being provided to the lights 116 to cause the lights 116 to dim.In other examples, the internal circuitry and/or software modules maycause the duty cycle of a power signal to change to increase the powersupply to the lights 116, and thus increase the brightness of the lights116.

In the example described above, the voice-controlled light dimmer 108may communicate with the remote service 118 over one or more networks120, which may comprise wired technologies (e.g., wires, USB, fiberoptic cable, etc.), wireless technologies (e.g., WiFi, RF, cellular,satellite, Bluetooth, etc.), or other connection technologies. Thenetwork 120 is representative of any type of communication network,including data and/or voice network, and may be implemented using wiredinfrastructure (e.g., cable, CATS, fiber optic cable, etc.), a wirelessinfrastructure (e.g., RF, cellular, microwave, satellite, Bluetooth,etc.), and/or other connection technologies. In some instances, thevoice-controlled light dimmer 108 may also communicate with user devicesvia short-range wireless communication protocols (e.g., Bluetooth,Zigbee, etc.), such as the user device 110. For instance, thevoice-controlled light dimmer 108 may provide audio signals to the userdevice 110 or other user devices, which may in turn send the audiosignals to the remote service 118 or may itself perform the processing(e.g., beamforming) and/or speech recognition. In still other instances,the voice-controlled light dimmer 108 may communicate with local userdevices to send instructions to these devices. For instance, if the user104 states a command to “turn on my kitchen television”, thevoice-controlled light dimmer 108 may send an instruction to do so tothe kitchen television using the appropriate protocol used by thetelevision.

As illustrated, the voice-controlled light dimmer 108 may include thefront panel module 112, a power module 122, and an interface 124 tofacilitate communications between the front panel module 112 and thepower module 122. The front panel module 112 may include themicrophone(s) 114, one or more switches 126 (e.g., a paddle switch,rocker switch, a slider, a knob, a toggle switch, etc.), one or moreprocessors 128, one or more speakers 130, one or more networkinterface(s) 132, and memory 134. In some examples, the front panelmodule 112 may include other sensors, such as proximity sensors, todetermine the presence and/or position of the user 104 in theenvironment. As illustrated, the memory 134 may store aspeech-recognition engine 136. As described above, thespeech-recognition engine 136 may function to perform speech recognitionon audio signals generated by the microphones 114 to identify apredefined word or phrase, such as “wake up”. After identifying thisword or phrase, the front panel module 112 may begin sending one or moreof the audio signals to the remote service 118 using one of the networkinterfaces 132.

In some examples, the front panel module 112 may include other types ofinput devices other than switches 126 and microphones 114. For example,the front panel module 112 may include a touch screen, a camera, amotion sensor, and/or a proximity sensor. In some instances, the inputto control the power load may be received via these other input devices.For instance, a touch screen may be configured to receive touch inputindicate the user would like to change an amount of power provided to apower load. Further, the camera may capture a gesture from a user, suchas a thumbs up to turn on or increase the power supplied to a load, anda thumbs down to turn off a load or decrease power to a load.Additionally, the motion sensor may capture data representing a gestureof a user, such as downward motion of an arm of a user which indicatesthe user would like to decrease power to a load or turn off a load, andan upward motion may indicate a user would like to increase power orturn on power to a load. In this way, other types of input devices maybe used to receive commands from a user to change an amount of powerprovided to a load by sending a command to the power module 122.

As illustrated, the remote service 118 includes one or more processors138 and memory 140, which have access to a signal-processing engine 142,a speech-recognition engine 144, and a command-processing engine 146. Insome instances, as described below, the front panel module 142 or otherclient devices within the environment 102 may upload audio signals tothe remote service 118 for processing, given that the remote service 118may have a computational capacity that far exceeds the computationalcapacity of the front panel module 112. Therefore, upon receiving audiosignals from the front panel module 112, the signal-processing engine142 may perform one or more relatively complex processing techniques onthe signals to generate one or more processed audio signals. Forinstance, the signal-processing engine 142 may perform beamforming,acoustic-echo cancellation, background noise reduction, or othertechniques to generate one or more processed audio signals having ahigher SNR than the pre-processed audio signals. Furthermore, the frontpanel module 112 may additionally or alternatively include thesignal-processing engine 142 for performing the beamforming,acoustic-echo cancellation, background noise reduction, or othertechniques prior to uploading the processed audio signals to the remoteservice 118.

Thereafter, the speech-recognition engine 144 may performspeech-recognition on the processed audio signal(s) to identify one ormore voice commands represented therein, such as the example voicecommand 106. Thereafter, the command-processing engine 146 may causeperformance of one or more action in response to identifying the voicecommand. In the illustrated example, for instance, thecommand-processing engine 146 may issue an instruction to the frontpanel module 112, which in turn sends an instruction to the power module122, to dim the light 116.

Given the above, in some instances the front panel module 112transitions from an “asleep” state, in which the localspeech-recognition engine 136 performs ASR to identify a predefinedutterance, to an “awake” state, in which the front panel module 112provides audio signals to the remote service 118 for processing andperforming ASR thereon. In other instances, meanwhile, the front panelmodule 112 may include a selectable physical button or soft button thatcauses the front panel module 112 to transition from the “asleep” stateto the “awake” state in response to a user selecting the button.

Furthermore, regardless of whether the speech recognition occurs locallyor remotely from the environment 102, the front panel module 112 mayreceive vocal input from the user 104 and the front panel module 112and/or the remote service 118 may perform speech recognition tointerpret a user's operational request or command. The requests may befor essentially any type of operation, such as changing the brightnessof the light 116, turning on or off appliances, adjusting appliancesettings, authentication, database inquires, requesting and consumingentertainment (e.g., gaming, finding and playing music, movies or othercontent, etc.), personal information management (e.g., calendaring, notetaking, etc.), online shopping, financial transactions, and so forth.

Thus, in some examples, the front panel module 112 may receive, from theremote service 118, data indicating that the one or more audio signalsinclude a request (e.g., sound, speech input, etc.) from the user 104 tochange an amount of power supplied to a power load connected to thepower module 122. For instance, the user 104 may have requested, usingcommand 106, that the voice-controlled dimmer 108 dim the light 116, orincrease the brightness of the light 116.

In other examples, rather than receiving a voice request from the user104 to increase or decrease the brightness of the light 116, the frontpanel module 112 may receive input via the switches 126 to change thebrightness of the light 116. Regardless of the type of input, the memory134 of the front panel module 112 may include one or more front panelsoftware components 148 configured to send a command to the power module122 upon receiving input instructing the voice-controlled dimmer 108 tochange a brightness of the light 116.

In some examples, the front panel software components 148 may includeencryption components configured to use one or more encryption keys toencrypt data sent between the front panel module 112 and the powermodule 122 using the interface 124. Thus, the front panel module 112 maysend encrypted data including the instruction to change the brightnessof the light 116.

The interface 124 may generally comprise one or more female connectionsdisposed on either the power module 122 or the front panel module 112,and one or more male connections disposed on the other of the powermodule 122 or the front panel module 112. The male connections andfemale connections mate to create electrical connections between thepower module 122 and front panel module 112. In some examples, theinterface 124 may include at least two connections for communicatingdata using the I2C protocol between the power module 122 and the frontpanel module 112. However, as noted above, the interface 124 may includeany number of connections for communicating using any protocol. Further,the interface 124 may include a connection for providing power from thepower module 122 to the front panel module 112. In some examples, theinterface 124 may include other connections as described in FIG. 3.

The power module 122 may include one or more processors 150, one or morepower module hardware components 152, and one or more power modulesoftware components 154. The power module software components 154 mayperform various operations, such as encrypting and/or decrypting dataset and received between the power module 122 and the front panel module112. The power module software components 154 may decrypt the encrypteddata sent from the front panel module 112 and determine that the dataincludes the instruction or command to change the brightness of thelight 116. The power module software components 154 may cause the powermodule hardware components 152 to change the brightness of the light116.

In some examples, the power module hardware components may includecircuitry, integrated circuits, and other hardware for performingvarious power control operations. For instance, the power modulehardware components 152 may adjust the duty cycle of a power signal forthe light 116 to change the brightness of the light 116. In variousexamples, the power module hardware components 152 may provide power tothe components of the front panel module 112. In some instances, theprocessors 150, power module hardware components 152, and/or the powermodule software components 154 may comprise a microprocessor chip.

FIG. 2 illustrates an example configuration of the voice-controlledlight dimmer 108. As illustrated, the voice-controlled light dimmer 108includes the front panel module 112 having a housing, the power module122, and the interface 124. The power module 122 is illustrated ashaving female connectors of the interface 124, and the front panelmodule 112 has the male connectors of the interface 124 (not shown).However, in other examples female connectors may be on the front panelmodule 112 and the male connectors may be on the power module 122. Ineven further examples, the interface 124 may not even be a male/femaleconnectors type configuration, and can comprise any other type ofhardware interface for electrically connecting the power module 122 andthe front panel module 112.

The front panel module 112 may include multiple microphones 114 (e.g.,114(1), 114(2), 114(3), 114(4) . . . 114(N)) disposed on a faceplate 200of the front panel module 112. While the microphones 114 are illustratedas four microphones disposed on a top portion of the faceplate 200, themicrophones may comprise any number of microphones disposed at anylocation on the front panel module 112. For instance, one or moremicrophones may be disposed on portions of the switch 126 to provide forvertical beamforming in addition to horizontal beamforming using themicrophones 114.

In some instances, the front panel 112 includes multiple microphones114, each configured to generate a respective audio signal. Together,these multiple audio signals may be processed to generate a processedaudio signal, having a signal-to-noise (SNR) ratio that is greater thanthe SNR ratio of any singular one of the audio signals. For instance,the light switch, or a remote service, may utilize the multiple audiosignals to generate a processed audio signal using beamformingtechniques, noise-cancellation techniques, or the like. Thevoice-controlled light dimmer, the remote service, or another device maythen perform speech recognition on the processed audio signal having theincreased SNR, thus increasing accuracy and efficacy of the speechrecognition.

The front panel module 112 is illustrated as having a speaker 130disposed on the switch 126. However, in other examples multiple speakers130 may disposed anywhere on the front panel module 112.

In some examples, the front panel module 112 may include one or morelight emitting diodes (LEDs) 202. The LEDs 202 may comprise multipleLEDs (e.g., 202(1), 202(2), 202(3), 202(4) . . . 202(N), etc.) disposedat any location on the front panel module 112, such as the switch 126and/or the faceplate 200. The LEDs 202 may be configured to output lightas a form of communication to a user, and/or to illuminate thevoice-controlled dimmer 108, such as when the environment is dark.

As shown in FIG. 2, the front panel module 112 may be configured to beplaced on, or coupled to, the power module 122, where the power module122 may be permanently installed or fixed on a surface, such as a wall.

FIG. 3 illustrates an example of the voice-controlled dimmer 108. Asshown, the voice controlled dimmer 108 includes various componentsdescribed in FIGS. 1 and 2, such as the front panel module 112, theinterface 124, and the power module 122. The front panel module 112 mayinclude the microphones 114, switches 126, processors 128, speakers 130,network interfaces 132, and memory 134. The memory 134 may include thespeech-recognition engine 136, and may further include a commanddetermination module 302, an encryption/decryption module 304, and amaster communication module 306.

In various examples, the command determination module 302 may compriseinstructions for determining what command to send to the power module122 based on input received at the front panel module 112. For instance,the microphones 114 may receive a voice command from a user 104, andsend audio signals to the remote server 118 for processing. The frontpanel module 112 may receive, via the network interfaces 132 (e.g., oneor more antennas), data indicating that the audio signals included arequest to control the power of a power load associated with the powermodule 122. Thus, the command determination module 302 may determineand/or generate a command to cause the power module 122 to control orchange the power of the power load (e.g., light 116). In other examples,the front panel module 112 may receive input via the switches 126 (e.g.,actuation of the switch to a dim position, or actuation of the switch toa bright position). The command determination module 302 may determine,based on the input received at the switches 126, a command to cause thepower module 122 to control the power to the power load based on theinput.

In some examples, the encryption/decryption module 304 may encrypt thecommand using one or more encryption keys. The encryption/decryptionmodule 304 may encrypt the command to generate an encrypted command, orencrypted data, prior to sending data over the interface 124.

In some instances, the master communication module 306 may includeinstructions to send the command, or an encrypted command, via theinterface 124 to the power module 122. In some instances, the mastercommunication module 306 may send the data using the inter-integratedcircuit (I2C) connections 308 of the interface 124. The I2C connections308 may comprise two connections facilitating communications between thefront panel module 112 and the power module 122. While the interface 124is illustrated as having two connections for communications using theI2C protocol, in some examples the interface 124 may comprise any numberof hardwired connections (e.g., 1, 2, 3, 4, 5, etc.) used to communicateusing different protocols (e.g., UART, SPI, USB, etc.).

In some examples, the command determination module 302 may furtherdetermine to send a reset signal to the power module 122. For example,the command determination module 302 may receive instructions from theremote service 118 to send the reset signal to the power module 122,where the reset signal causes components of the power module 122 toreset. In some instances, the master communication module 306 of thefront panel module 112 may place a logic high signal (or alternativelylogic low when logic high is the default signal) on a reset connection310 of the hardware interface 124. For instance, the reset connection310 may comprise a wire, or other type of hardware connection, which hasa logic high/low signal placed on it that, when detected by the powermodule 112, cause the power module 122 and/or processor(s) 150 to reset.

In various examples, the power module 122 may receive signals from thefront panel module 112 via the interface 124. In some examples, thepower module 122 may include one or more isolation modules toelectrically isolate components of the power module 122 from objectsexterior the power module 122. For example, a magnetic isolation module312 may electrically isolate the power module 122 from the I2C interface308. In some examples, the magnetic isolation module 312 may comprise acircuit including a transformer to magnetically isolate the power module122 from the connections exterior the power module 122. In otherexamples, any type of electrical isolation may be used between the powermodule 122 and the interface 124 to allow for the power module 122 to be“hot pluggable,” or safe to unplug a powered front panel module 112.

In some instances, the power module 122 may include various components,such as one or more power converters 314, an energy metrology module316, a power control 318, and memory 320.

In some examples, the power converters 314 may convert power fromvarious voltages and/or forms into different voltages and/or forms topower components of the power module 122 and the front panel module 112.For example, the power converters 314 may receive input power in theform of 120V of alternating current (AC), or any other type ofrelatively high voltage often provided to buildings (e.g., 110V AC, 240VAC, etc.). In some examples, the input power may be received from a walloutlet, or by wiring the power module 122 into a home power system. Thepower converters may convert the power into direct current (DC), andchange the voltage from 120V into a smaller voltage (e.g., 3.5V, 5V,etc.) that is used to power the front panel module 112. For example, thepower converters 314 may provide power to the front panel module 112 atroughly +5V of DC power, and power at roughly 11 Watts, using the powersupply connection 322 of the interface 124. In some examples, the powerconverters 314 may provide different supply voltages for variouscomponents of the power module 122 and/or the front panel module 112.

In some instances, the power converters 314 may selectively providepower via the power supply connection 322. For instance, a detectinterface 324 of the interface 124 may indicate whether or not a frontpanel module 112 is connected to the power module 122. If the detectinterface 324 indicates that a front panel module 112 is connected, thenthe power converters 314 may provide the supply voltage to the frontpanel module 112. Alternatively, if the detect interface 324 does notindicate that a front power module 108 is connected to the power module122, then the power converters 314 will not provide power via the powersupply 322. In this way, “hot” connections are avoided when a frontpanel module 112 is not connected. In some examples, the detectinterface 324 may comprise a wire, or other hardware connection, thathas a logic high signal (or low signal) placed on it to notify the powermodule 122 that a front panel module 112 is connected. In otherexamples, the detect interface 324 may comprise a hardware connectionwhich completes a circuit internal to the power module 122, whichindicates that the front panel module 112 is connected. In variousexamples, the detect interface 324 may be used to send and receive datafor the power module 122 indicating whether or not a front panel module112 is connected, what type of module 112 is connected, or other data.

As illustrated, the power module 122 may be isolated from the resetconnection 310, power supply 322, and/or detect interface 314 usingvarious electrical isolation components, such as an optical isolationmodule 326. The optical isolation module 326 may provide electricalisolation using any known optical isolation techniques. However, anytype of electrical isolation module may be used, such as a magneticisolation module 312.

In some examples, the energy metrology module 316 may comprise anintegrated circuit configured to report to the front panel module 112what the load characteristics for the power loads connected to the powermodule 122 are. The power module 122 may be connected to one or morepower load using one or more wires, and the energy metrology module 316may monitor the load characteristics of the loads. In this way, thefront panel module 112 is able to report energy usage andcharacteristics for the loads of the power module 122 to a mobile deviceassociated with a user 104 and/or the remote service 118.

In various examples, the power control component 318 may include variouscomponents for controlling the power supplied to the loads for the powermodule 122. The power control component 318 may include a relay control328 and a dimmer control 330. In some examples, the relay control 328may be used to control power to certain types of power loads, such asinductive loads. In some instances, the relay control 328 can powermaximum current loads of house wiring (e.g., 14-gauge wire at 15amperes). The relay control 328 may be used to control inductive-likeloads, or purely inductive and high current loads, such as loads withmotors (e.g., heaters, fans, etc.). For instance, the relay control 328may be configured to change a speed of the fan and/or the heat output bya heater based on input. Controlling loads other than a dimming lightmay comprises turning on or off the loads, or controlling other aspectsof the loads (e.g., thermostat output, fan speed, heater output, etc.).

In various examples, the dimmer control 330 may be used to controllighting loads, such as by dimming lights. The dimmer control 330 maycomprise a TRIAC-based control system (e.g., two TRIACs, four TRIACs,etc.). In other examples, the dimmer control 330 may comprise aMOSFET-based control system (e.g., two MOSFETS, four MOSFETS, etc.) tocontrol power output to dim lights. In various examples, the dimmercontrol 330 may control the brightness of the light 116 using apulse-width modulation (PWM) signal. For instance, the dimmer control330 may swing the duty cycle of the clock for the PWM signal from 10% to90% based on whether the instruction received from the front panelmodule 112 indicates a request to increase the brightness of the light116, or decrease the brightness of the light 116. The longer the dutycycle of the PWM power signal provided to the light 116, the more powerthe light 116 receives, and the brighter the light 116 is (andvice-versa).

In some examples, the energy metrology module 316 may monitor at leastone of the current, voltage, or power supplied to the loads controlledby the power module 122 in order to determine load characteristics. Forinstance, the energy metrology module 316 may determine, based oncharacteristics of the voltage or current supplied to the load, that theload comprises an inductive load, a capacitive load, a purely resistiveload, etc. The energy metrology module 316 may determine loadcharacteristics of the load independent of a request by a user, in someexamples. The energy metrology module 316 may notify the power controlcomponent 318 of the characteristics of the load. Based on thecharacteristics of the load, the power control component 318 may performvarious operations for modifying the power supplied to the load. Forinstance, the power control component 318 may be configured to perform aleading edge and/or trailing edge phase cut to the signal of the powerprovided to the loads to support different types of loads. As anexample, a trailing edge phase cut may be applied to the power beingsupplied for an inductive load, and a trailing edge phase cut may beapplied to the power being supplied to a capacitive load. In someexamples, applying the leading edge and/or trailing edge phase cuts mayincrease user experience. For instance, the dimmer control 330 may havedifferent modes depending on the type of load. In some examples, such aswhen the load comprises a light, a leading edge or trailing edge phasecut may be applied to the power signal to reduce flickering of thelight, humming from the light, or other unwanted results due to thepower being supplied, and the type of load consuming the power. Thus,the components of the power module 122 may intelligently determine atype of load that is having its power supplied by or modified by thepower module 122, and change modes to apply leading edge phase cutsand/or trailing edge phase cuts to the power provided to reduce unwantedresults at the load.

In some examples, the memory 320 may include a dimmer controller 332, anencryption/decryption module 334, and a slave communication module 336.The slave communication module 336 may send and receive communicationswith the master communication module 206 of the front panel module 112using the I2C interface 308. The encryption/decryption module 334 mayencrypt and decrypt data sent and received using the I2C interface. Insome examples, the encryption/decryption module 334 may use one or morekeys to encrypt and decrypt data in messages. For instance, theencryption/decryption module 334 may decrypt a message received from thefront panel module 112 which indicates an instruction to change thebrightness of the light 116. The dimmer controller 322 may determine howto control the dimmer control 330 integrated circuit of the powercontrol component 318 to change the brightness of the light 116. Forexample, the dimmer controller 332 may determine how to swing the dutycycle of the PWM power signal which provides power to the light 116 inorder to change the brightness of the light 116 according to the commandreceived from the front panel module 112.

In various examples, the encryption/decryption module 304 andencryption/decryption module 334 may store an infrastructure of publicand private keys used to validate the front panel module 112 as beingauthentic. For instance, every authenticated front panel module 112(e.g., a licensed front panel module 112) may store one or more privatekeys used to encrypt data which can be in turn decrypted by keys storedin the encryption/decryption module 334, and vice-versa. In this way,encryption and decryption can be performed by the power module 122, andalso by the front panel module 112, to ensure that communicationsbetween the modules cannot be interpreted, and to ensure that onlylicensed front panel module 122 manufacturers are able to interface withthe power module 122.

While the techniques described herein are described with reference tochanging the brightness of a light, the techniques may be applied tocontrolling any power consuming load controlled by the power module 122.For instance, the command received from the front panel module maycomprise a command to turn on or off a television, and the power controlcomponent 318 may cause the television to turn on or off. In otherexamples, the commands may be unrelated to a load as well. For example,the commands may comprise a command to add an item to a shopping list ofa user 104, schedule an appointment in a calendar for the user 104, calla contact of the user 104, stream music from another device of the user,and so on.

In some examples, the processor(s) 128 and 150 may include a centralprocessing unit (CPU), a graphics processing unit (GPU), both CPU andGPU, or other processing units or components known in the art.Additionally, each of the processor(s) 128 and 150 may possess its ownlocal memory, which also may store program modules, program data, and/orone or more operating systems.

Depending on the exact configuration and type of the voice-controlleddimmer 108, the memory 134 and memory 320 may include volatile memory(such as RAM), non-volatile memory (such as ROM, flash memory, miniaturehard drive, memory card, or the like), or some combination thereof. Thememory 134 and memory 320 (as well as all other types of memory orstorage described herein) may include one or a combination of computerstorage media. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information, such as computerreadable instructions, data structures, program modules, or other data.Computer storage media includes, but is not limited to, phase changememory (PRAM), static random-access memory (SRAM), dynamic random-accessmemory (DRAM), other types of random access memory (RAM), read-onlymemory (ROM), electrically erasable programmable read-only memory(EEPROM), flash memory or other memory technology, compact diskread-only memory (CD-ROM), digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other non-transitorymedium that can be used to store information for access by a computingdevice. As defined herein, computer storage media does not includecommunication media, such as modulated data signals and carrier waves.As such, computer storage media is non-transitory media.

FIG. 4 illustrates a flow diagram of an example process 400 forreceiving input at a front power module indicating an instruction to dima light, determining a command to dim the light, encrypting the commandto generate an encrypted command, and sending the encrypted command tothe power module.

The process 400 (and each process described herein) is illustrated as alogical flow graph, each operation of which represents a sequence ofoperations that can be implemented in hardware, software, or acombination thereof. In some instances, some or all of the operationsare executed by the components of a voice-controlled light dimmer, suchas the front panel module 112 and power module 1222 of the light dimmer108 described above. In the context of software, the operationsrepresent computer-executable instructions stored on one or morecomputer-readable media that, when executed by one or more processors,perform the recited operations. Generally, computer-executableinstructions include routines, programs, objects, components, datastructures, and the like that perform particular functions or implementparticular abstract data types.

The computer-readable media may include non-transitory computer-readablestorage media, which may include hard drives, floppy diskettes, opticaldisks, CD-ROMs, DVDs, read-only memories (ROMs), random access memories(RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards,solid-state memory devices, or other types of storage media suitable forstoring electronic instructions. In addition, in some embodiments thecomputer-readable media may include a transitory computer-readablesignal (in compressed or uncompressed form). Examples ofcomputer-readable signals, whether modulated using a carrier or not,include, but are not limited to, signals that a computer system hostingor running a computer program can be configured to access, includingsignals downloaded through the Internet or other networks. Finally, theorder in which the operations are described is not intended to beconstrued as a limitation, and any number of the described operationscan be combined in any order and/or in parallel to implement theprocess.

At 402, the front panel module 112 receives input indicating aninstruction to dim at least one light 116. In some examples, the frontpanel module 112 may include a dimmer switch disposed in a faceplate ofthe front panel module that is configured to toggle between a brighterposition (e.g., upward position) and a dimmer position (e.g., downwardposition), wherein a power module coupled to the front panel increasesthe power to the at least one light when the upward position isactivated and provides less power to the at least one light when thedownward position is activated. In various examples, the front panelmodule 112 includes a wireless network interface 132, and receiving theinput indicating the instruction to dim comprises receiving an audiosignal generated by a microphone 114 of the front panel module 112,sending the audio signal to one or more remote devices 118 and via thewireless network interface 132, and receiving, from the one or moreremote devices 118 and via the wireless network interface 132, dataindicating that the audio signal includes the instruction to dim the atleast one light 116.

At 404, the front panel module 112 may determine a command to dim the atleast one light 116. For example, the command determination module 302may determine the command to dim the at least one light 116. In someexamples, the command determination module 302 may receive dataindicating the command from the remote devices 118. In various examples,the command determination module 302 may receive data indicating that anintent of the audio signal is to dim the at least one light 116, orotherwise control a load of the power module 122. In such examples, thecommand determination module 302 may identify data comprising thecommand to send to the power module 122 to control the load.

At 406, the front panel module 112 may encrypt, using one or moreencryption keys, the command to generate an encrypted command. Invarious examples, the encryption/decryption module 304 may store the oneor more keys and encrypt the command to generate the encrypted command.

At 408, the front panel module 112 may send, via a first connection 308of a hardware interface 124, the encrypted command to a power module122. In some instances, the encrypted command may be sent using aninter-integrated circuit (I2C) protocol using the first connection 308of the hardware interface.

FIG. 5 illustrates a flow diagram of an example process 500 forreceiving input at an apparatus indicating an instruction to change anamount of power supplied to a power load, determining a command to causea power module to change the amount of power, and sending the command tothe power module.

At 502, an apparatus (e.g., front panel module 112) may receive input,via one or more input devices, indicating an instruction to change anamount of power supplied to at least one power load. In some examples,the power supplied to the power load may be controlled by a power module122, where the apparatus is electrically coupled to the power module 122by a hardware interface 124. In various examples, changing the power maybe a binary change of power for the load (e.g., turn the load “on” or“off”), of a variable change of power for the load (e.g., change thebrightness of a light 116). In some examples, receiving the input maycomprise receiving, from one or more microphones of the apparatus, anaudio signal representing speech input (e.g., sound) in an environmentof the apparatus, sending the audio signal to one or more remote devicesand via a wireless network interface of the apparatus, and receiving,from the one or more remote devices and via the wireless networkinterface, data indicating that the audio signal includes theinstruction to change the amount of power supplied to the at least onepower load. In other examples, the one or more input devices of theapparatus may comprise a dimmer switch configured to toggle between anincrease power position and a decrease power position, wherein the powermodule provides additional power to the at least one power load when theincrease power position is activated and provides less power to the atleast one power load when the decrease power position is activated. Insuch examples, receiving the input indicating the instruction to changethe amount of power supplied to the at least one power load may comprisereceiving an activation of the dimmer switch.

At 504, the apparatus may determine a command configured to cause thepower module to change the amount of power supplied to the at least onepower load. In some examples, the command may be determined based ondata received from the one or more remote devices.

At 506, the apparatus may send, to the power module 122 and via a firstconnection 308 of the hardware interface 124, data representing thecommand to cause the power module 122 to change the amount of powersupplied to the at least one power load.

FIG. 6 illustrates a flow diagram of an example process 600 forreceiving a command to change an amount of power provided to a powerload, and causing a power control component to change the amount ofpower provided to the power load.

At 602, a power module 122 may receive, from a front panel module 112and via a first connection 308 of a hardware interface 124, dataindicating a command to change an amount of power provided to a powerload. In some examples, the power module 122 may be coupled to the powerload via one or more wires. In some instances, the data may be receivedvia the first connection 308 of the hardware interface 124 using aninter-integrated circuit (I2C) protocol.

In some instances, the data indicating the command may compriseencrypted data, and an encryption/decryption module 334 of the powermodule 122 may decrypt the encrypted data using one or more encryptionkeys to identify the command to change the amount of power.

At 604, the power module 122 may cause a power control component 318 tochange the amount of power provided to the at least one power load. Insome examples, changing the amount of power may comprise a binary changein power (e.g., turn a power load “on” or “off”), or a range in theamount of power (e.g., changing a duty cycle of a pulse-width modulationsignal controlling power supplied to the load). In some instances, arelay control 328 may be used to change the amount of power, such aswhen the power load comprises an inductive-type load. In other examples,a dimmer control 330 may be used to change the amount of power, such aswhen the power load comprises a light.

Although the subject matter has been described in language specific tostructural features, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thespecific features described. Rather, the specific features are disclosedas illustrative forms of implementing the claims.

What is claimed is:
 1. A front-panel module comprising: a hardwareinterface that couples the front-panel module to a power module, whereinthe front-panel module receives power from the power module; an inputdevice; one or more processors; and one or more computer-readable mediastoring computer-executable instructions that, when executed, cause theone or more processors to perform acts comprising: receiving, at leastpartly via the input device, input indicating an instruction;determining that the instruction is associated with operating asecondary device; generating one or more packets including data thatcauses the power module to control the secondary device according to theinstruction; encrypting, using one or more encryption keys, the one ormore packets to generate one or more encrypted packets; and sending, tothe power module, via the hardware interface, and using a communicationprotocol, the one or more encrypted packets.
 2. The front-panel moduleof claim 1, further comprising a wireless network interface, wherein:the data comprises first data; the input device comprises a microphone;the input comprises speech input; and the acts further comprising:receiving, from the microphone, audio data representing the speechinput; and wherein determining that the instruction is associated withoperating a secondary device further comprises: sending the audio datato one or more remote devices and via the wireless network interface;and receiving, from the one or more remote devices and via the wirelessnetwork interface, second data indicating that the audio data representsthe instruction associated with operating the secondary device.
 3. Thefront-panel module of claim 1, the acts further comprising: determiningthat a component of the power module is to be reset; and sending, viathe hardware interface, a reset signal indicating that the component ofthe power module is to be reset.
 4. The front-panel module of claim 1,wherein the communication protocol comprises at least one of: a SerialPeripheral Interface (SPI) protocol; or an Inter-Integrated Circuit(I2C) protocol.
 5. The front-panel module of claim 1, wherein the inputdevice comprises one of: a touch screen; a camera; a microphone; amotion sensor; or a proximity sensor.
 6. A power module comprising: oneor more processors; one or more of a magnetic isolation module or anoptical isolation module to electrically isolate components of the powermodule from objects exterior the power module; a hardware interface thatcouples the power module to a front-panel module, wherein the powermodule provides power to the front-panel module; and one or morecomputer-readable media storing computer-executable instructions that,when executed, cause the one or more processors to perform actscomprising: receiving, from the front-panel module and via the hardwareinterface, and using a communication protocol, data indicating aninstruction; determining that the instruction is associated withoperating a secondary device to which the power module iscommunicatively coupled; and causing the secondary device to operateaccording to the instruction.
 7. The power module of claim 6, whereinthe communication protocol comprises at least one of: a SerialPeripheral Interface (SPI) protocol; or an Inter-Integrated Circuit(I2C) protocol.
 8. The power module of claim 6, wherein the data is oneor more encrypted packets, and the acts further comprising decryptingthe one or more encrypted packets using one or more encryption keys toidentify the instruction to cause the secondary device to operate. 9.The power module of claim 6, wherein: the secondary device comprises anillumination device; the instruction to cause the secondary device tooperate comprises an instruction to dim the illumination device; andcausing the seconding device to operate comprises changing a duty cycleof a pulse-width modulation signal to control an amount of powersupplied to the illumination device.
 10. The power module of claim 6,the acts further comprising: detecting, via the hardware interface, areset signal from the front-panel module; and causing a component of thepower module to reset.
 11. The power module of claim 6, wherein the oneor more of the magnetic isolation module or the optical isolation modulecomprise: a magnetic isolation module to electrically isolate a firstcomponent of the power module from the hardware interface; and anoptical isolation module to electrically isolate a second component ofthe power module from the hardware interface.
 12. The power module ofclaim 6, wherein the secondary device comprises at least one of: athermostat; an illumination device; a security alarm; an electricaloutlet; a dishwasher; a fan; or a heating device.
 13. A front-panelmodule comprising: a hardware interface that couples the front-panelmodule to a power module, wherein the front-panel module receives powerfrom the power module; a microphone; one or more processors; and one ormore computer-readable media storing computer-executable instructionsthat, when executed, cause the one or more processors to perform actscomprising: receiving, via the microphone, speech input indicating aninstruction; determining that the instruction is associated withoperating a secondary device; generating one or more packets includingdata that causes the power module to control the secondary deviceaccording to the instruction; encrypting, using one or more encryptionkeys, the one or more packets to generate one or more encrypted packets;and sending, to the power module, via the hardware interface, and usinga communication protocol, the one or more encrypted packets.
 14. Thefront-panel module of claim 13, wherein the communication protocolcomprises at least one of: a Serial Peripheral Interface (SPI) protocol;or an Inter-Integrated Circuit (I2C) protocol.
 15. The front-panelmodule of claim 13, wherein the secondary device comprises at least oneof: a thermostat; a security alarm; a dishwasher; an illuminationdevice; a fan; or a heating device.
 16. The front-panel module of claim13, wherein the front-panel module further comprises at least one of: atouch screen; a camera; a motion sensor; or a proximity sensor.
 17. Thefront-panel module of claim 13, the acts further comprising: determiningthat a component of the power module is to be reset; and sending, viathe hardware interface, a reset signal indicating that the component ofthe power module is to be reset.